home *** CD-ROM | disk | FTP | other *** search
- """Easy to use dialogs.
-
- Message(msg) -- display a message and an OK button.
- AskString(prompt, default) -- ask for a string, display OK and Cancel buttons.
- AskYesNoCancel(question, default) -- display a question and Yes, No and Cancel buttons.
-
- More documentation in each function.
- This module uses DLOG resources 256, 257 and 258.
- Based upon STDWIN dialogs with the same names and functions.
- """
-
- from Dlg import GetNewDialog, SetDialogItemText, GetDialogItemText, ModalDialog
-
-
- def Message(msg):
- """Display a MESSAGE string.
-
- Return when the user clicks the OK button or presses Return.
-
- The MESSAGE string can be at most 255 characters long.
- """
-
- id = 256
- d = GetNewDialog(id, -1)
- if not d:
- print "Can't get DLOG resource with id =", id
- return
- tp, h, rect = d.GetDialogItem(2)
- SetDialogItemText(h, msg)
- while 1:
- n = ModalDialog(None)
- if n == 1:
- return
-
-
- def AskString(prompt, default = ""):
- """Display a PROMPT string and a text entry field with a DEFAULT string.
-
- Return the contents of the text entry field when the user clicks the
- OK button or presses Return.
- Return None when the user clicks the Cancel button.
-
- If omitted, DEFAULT is empty.
-
- The PROMPT and DEFAULT strings, as well as the return value,
- can be at most 255 characters long.
- """
-
- id = 257
- d = GetNewDialog(id, -1)
- if not d:
- print "Can't get DLOG resource with id =", id
- return
- tp, h, rect = d.GetDialogItem(3)
- SetDialogItemText(h, prompt)
- tp, h, rect = d.GetDialogItem(4)
- SetDialogItemText(h, default)
- # d.SetDialogItem(4, 0, 255)
- while 1:
- n = ModalDialog(None)
- if n == 1:
- tp, h, rect = d.GetDialogItem(4)
- return GetDialogItemText(h)
- if n == 2: return None
-
-
- def AskYesNoCancel(question, default = 0):
- ## """Display a QUESTION string which can be answered with Yes or No.
- ##
- ## Return 1 when the user clicks the Yes button.
- ## Return 0 when the user clicks the No button.
- ## Return -1 when the user clicks the Cancel button.
- ##
- ## When the user presses Return, the DEFAULT value is returned.
- ## If omitted, this is 0 (No).
- ##
- ## The QUESTION strign ca be at most 255 characters.
- ## """
-
- id = 258
- d = GetNewDialog(id, -1)
- if not d:
- print "Can't get DLOG resource with id =", id
- return
- # Button assignments:
- # 1 = default (invisible)
- # 2 = Yes
- # 3 = No
- # 4 = Cancel
- # The question string is item 5
- tp, h, rect = d.GetDialogItem(5)
- SetDialogItemText(h, question)
- while 1:
- n = ModalDialog(None)
- if n == 1: return default
- if n == 2: return 1
- if n == 3: return 0
- if n == 4: return -1
-
-
- def test():
- Message("Testing EasyDialogs.")
- ok = AskYesNoCancel("Do you want to proceed?")
- if ok > 0:
- s = AskString("Enter your first name")
- Message("Thank you,\015%s" % `s`)
-
-
- if __name__ == '__main__':
- test()
-